import axios from 'axios'
import { observable } from 'mobx'
import store from 'store'
store.addPlugin(require('store/plugins/expire'))  //加载过期插件,此处返回一个对象
//用户逻辑的处理 
export default class UserService {
    @observable loggin = 0;  // 被观察对象，已经被观察了,一旦值发生变化，则观察者就知道了
    @observable reggin = 0;
    @observable userMsg = '';  // 用于处理登录或注册失败提示问题
    login(email, password) {
        axios.post('/api/user/login', {
            'email': email,
            'password': password
        })
            .then((response) => {   //成功执行的操作  this的问题通过箭头函数解决 
                // obj.setState({ret:1000})  //state触发导致改变
                // console.log(this)
                store.set('token', response.data.token, (new Date()).getTime() + (8 * 3600 * 1000));//getTime拿到的是时间，但其是毫秒
                this.loggin = Math.random() * 100;  // 修改值
            })
            .catch((error) => { //失败执行的操作
                this.userMsg = "登录失败，请重新登录"
            });
        //for  (var d=new Date();(new Date())-d < 10*1000;); // 此处是同步处理 
        // console.log(email, password, 'UserService')// 如何传输，传输什么，返回什么，如何返回的问题
    }
    reg(name, email, password) {
        axios.post('/api/user/reg', {
            "name": name,
            "email": email,
            "password": password,
        },
        ).then((response) => {
            this.reggin = parseInt(Math.random() * 100);
            store.set('token', response.data.token, (new Date()).getTime() + (8 * 3600 * 1000));//getTime拿到的是时间，但其是毫秒
        }
        ).catch((error) => {
            this.userMsg = "注册失败，请重新注册"
        })
    }
}

